package com.example.flower_shop.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单表
 *
 * @TableName sys_store_order
 */
@EqualsAndHashCode(callSuper = true)
@TableName(value = "sys_store_order")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class StoreOrder extends BaseEntity implements Serializable {
    /**
     * 订单ID
     */
    @TableId
    private Long id;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 用户id
     */
    private Long uid;

    /**
     * 用户姓名
     */
    private String realName;

    /**
     * 用户电话
     */
    private String userPhone;

    /**
     * 详细地址
     */
    private String userAddress;

    /**
     * 订单商品总数
     */
    private Integer totalNum;

    /**
     * 商品总价
     */
    private BigDecimal proTotalPrice;

    /**
     * 订单总价
     */
    private BigDecimal totalPrice;

    /**
     * 实际支付金额
     */
    private BigDecimal payPrice;
    /**
     * 支付状态
     */
    private Integer paid;

    /**
     * 支付时间
     */
    private LocalDateTime payTime;

    /**
     * 支付方式
     */
    private String payType;

    /**
     * 订单状态（0：待发货；1：待收货；2：已收货，待评价；3：已完成；）
     */
    private Integer status;

    /**
     * 0 未退款 1 申请中 2 退款中 3 已退款
     */
    private Integer refundStatus;

    /**
     * 退款时间
     */
    private LocalDateTime refundReasonTime;

    /**
     * 退款金额
     */
    private BigDecimal refundPrice;

    /**
     * 快递公司简称
     */
    private String deliveryCode;

    /**
     * 快递名称/送货人姓名
     */
    private String deliveryName;

    /**
     * 发货类型
     */
    private String deliveryType;

    /**
     * 快递单号/手机号
     */
    private String deliveryId;

    /**
     * 备注
     */
    private String mark;

    /**
     * 管理员备注
     */
    private String remark;

    /**
     * 是否删除
     */
    private Integer deleted;

    /**
     * 配送方式 1=快递 ，2=门店自提
     */
    private Integer shippingType;
}